#include<stdio.h>

int dx[4]={0,1,0,-1};
int dy[4]={1,0,-1,0};
int j=0;

void f(int n,int*p)
{
    if(n<10)
    {
        for(int i=3;i>=0;i--)
        {
            *(p+j)=(n>>i)&1;
            j++;
        }
    }
    else{
       f(n/10,p);
       for(int i=3;i>=0;i--)
        {
            *(p+j)=(n%10>>i)&1;
            j++;
        }
    }
}

int main()
{
    int n=0;
    scanf("%d",&n);
    int arr[100000]={0};
    f(n,arr);
    int arr1[100][100]={0};
    for(int i=0;i<4;i++)
    {
        for(int r=0;r<4;r++)
        {
            arr1[i][r]=2;//初始化全为2
        }
    }

    int k=0;
    int x=0;
    int y=0;
    int pos=0;

    while(j--)
    {
      arr1[x][y]=arr[k];
      k++;
      int a=x+dx[pos];
      int b=y+dy[pos];
      if(a>3||b>3  ||a<0||b<0|| arr1[a][b]!=2)
      {
        pos=(pos+1)%4;
        a=x+dx[pos];
        b=y+dy[pos];
      }
      x=a;
      y=b;
    }

   for(int i=0;i<4;i++)
   {
      for(int h=0;h<4;h++)
      {
        printf("%2d",arr1[i][h]);
      }
      printf("\n");
   }
}